// pages/profile/index.ts
Page({
  data: {
    userInfo: {}
  },
  onLoad() {
    const userInfo = wx.getStorageSync('userInfo')
    this.setData({
      userInfo
    })
  },
  getUserNickName(ev) {
    this.updateNickName(ev.detail.value)
  },
  async updateNickName(nickName) {
    // 更新到后台
    const {
      code
    } = await wx.http.put('/userInfo', {
      nickName
    })
    if (code !== 10000) return wx.utils.toast('更新昵称失败！')
    // 更新到页面
    this.setData({
      'userInfo.nickName': nickName
    })
  },
  getUserAvatar(ev) {
    this.updateAvatar(ev.detail.avatarUrl)
  },
  updateAvatar(filePath) {
    const app = getApp()
    wx.uploadFile({
      filePath: filePath,
      name: 'file', // 值是后端要求的
      url: wx.http.baseURL + '/upload',
      header: {
        Authorization: app.token
      },
      // 普通参数都要写到 formData 中
      formData: {
        type: 'avatar'
      },
      success: (res) => {
        const info = JSON.parse(res.data)
        this.setData({
          'userInfo.avatar': info.data.url
        })
      }
    })
  }
})